<?php
/**
 *
 * @file utils.php
 * @author DYR Technologies
 * @version V 1.1
 * @date Wed Aug 15 17:32:55 VET 2007
 *
 *  Part of the CEFIRO dynamic web framework project
 *
 *  Copyright (C) 2007  Dyr technologies http://dyrtech.com.ve
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/**
 * @brief Función para obtener la ruta relativa del archivo con la función de busqueda
 */

function get_rel($str,$curr){
	$curr=substr($curr,0,strrpos($curr,"/"))."/";
	$i=0;$last_delim=0;
	/**
	 * @brief Se busca el punto en el que difieren ambas cadenas almacenando donde se encontró el último delimitador
	 */
	while(strcmp($str[$i],$curr[$i])==0){
		if(strcmp($str[$i],"/")==0)
			$last_delim=$i;
		$i++;
	}
	/**
	 * @brief Se almacena en $rest el valor restante de la cadena que posee la ruta del archivo que hace la llamada a la función
	 */
	$rest=substr($str,$last_delim+1,strlen($str)-($last_delim+1));
	/**
	 * @brief Se busca la cantidad de apariciones del delimitador en la cadena del archivo actual
	 */
	$slashes=substr_count(substr($curr,$last_delim+1),"/");
//	error_log($slashes);
	/**
	 * @brief Se concatenan tantas salidas de carpeta (../) como slashes existan desde la úlitma diferencia con el archivo que posee la función a ser llamada
	 */
	$retval="";
	for($i=0;$i<$slashes;$i++)
		$retval.="../";
	$retval.=$rest;
	return $retval;
}

?>